source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-257.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 1.827.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
7677 5060 4615 5850 9 7573 3172 2435 4601 3107 5251 3885 3231 1855 746 5680
17 18 19 20 21 22 23 24 25
2852 4940 5339 2548 1189 4399 2852 5985 30
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("fecha_cnt", "tmax", "tmin", "precip", "nevada", "prof_nieve", "longitud", "latitud", "altitud")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
fecha_cnt tmax tmin precip nevada prof_nieve
[1,] -0.1326450 -0.7764810 -0.7881419 0.50837115 0.01949938 0.04073106
[2,] -0.7699525 -0.3342997 -0.2678378 -0.01103149 -0.01261588 0.02232395
longitud latitud altitud
[1,] 0.5567297 0.2003750 0.15767241
[2,] -0.3705334 -0.2755058 -0.08013338
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
longitud altitud tmax latitud tmin fecha_cnt nevada
0.9413777 0.9196386 0.9146835 0.9135709 0.9104839 0.8990644 0.8769013
precip prof_nieve
0.8325967 0.8284927
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:149.0 1st Qu.: 53.00 1st Qu.: 3.00
Median : 6.000 Median :198.0 Median : 98.00 Median : 10.00
Mean : 6.498 Mean :200.3 Mean : 98.91 Mean : 16.24
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 148.00 3rd Qu.: 22.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:38.28 1st Qu.: -5.6417
Median :0.00e+00 Median : 0.0000 Median :40.82 Median : -3.4500
Mean :3.16e-05 Mean : 0.2499 Mean :39.66 Mean : -3.4350
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :1.00e+00 Max. :343.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 42.0
Median : 247.0
Mean : 418.1
3rd Qu.: 656.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.:146.0 1st Qu.: 50.00 1st Qu.: 3.00
Median : 6.000 Median :194.0 Median : 93.00 Median : 11.00
Mean : 6.498 Mean :198.9 Mean : 94.87 Mean : 16.96
3rd Qu.: 9.000 3rd Qu.:255.0 3rd Qu.: 141.00 3rd Qu.: 23.00
Max. :12.000 Max. :403.0 Max. : 254.00 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.000 Min. :27.82 Min. :-17.8889
1st Qu.:0.00e+00 1st Qu.: 0.000 1st Qu.:38.99 1st Qu.: -4.8500
Median :0.00e+00 Median : 0.000 Median :40.96 Median : -2.4831
Mean :3.41e-05 Mean : 0.267 Mean :40.55 Mean : -2.4501
3rd Qu.:0.00e+00 3rd Qu.: 0.000 3rd Qu.:42.23 3rd Qu.: 0.4942
Max. :1.00e+00 Max. :343.000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 251.0
Mean : 410.2
3rd Qu.: 667.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.503 Mean :217.4 Mean :150.6 Mean : 6.924 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03086 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 8 Min. :-110.0 Min. : 0.00
1st Qu.: 7.000 1st Qu.:194 1st Qu.: 92.0 1st Qu.: 2.00
Median : 8.000 Median :243 Median : 132.0 Median : 8.00
Mean : 8.493 Mean :235 Mean : 124.6 Mean :11.38
3rd Qu.:10.000 3rd Qu.:285 3rd Qu.: 165.0 3rd Qu.:17.00
Max. :12.000 Max. :403 Max. : 254.0 Max. :95.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-4.6992
Median :0.00e+00 Median : 0.0000 Median :40.82 Median :-2.1381
Mean :3.96e-05 Mean : 0.0172 Mean :40.33 Mean :-2.1936
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:41.84 3rd Qu.: 0.5706
Max. :1.00e+00 Max. :59.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 192.0
Mean : 353.5
3rd Qu.: 628.0
Max. :1971.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.0
1st Qu.: 2.000 1st Qu.:123.0 1st Qu.: 28.00 1st Qu.: 7.0
Median : 3.000 Median :155.0 Median : 59.00 Median : 17.0
Mean : 3.804 Mean :150.3 Mean : 54.74 Mean : 24.5
3rd Qu.: 4.000 3rd Qu.:181.0 3rd Qu.: 83.00 3rd Qu.: 34.0
Max. :12.000 Max. :350.0 Max. : 223.00 Max. :422.0
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :27.82 Min. :-17.8889
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:39.49 1st Qu.: -5.5975
Median :0.00e+00 Median : 0.0000 Median :41.38 Median : -3.4503
Mean :2.67e-05 Mean : 0.6043 Mean :40.83 Mean : -2.7962
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:42.47 3rd Qu.: 0.4731
Max. :1.00e+00 Max. :343.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 58.0
Median : 336.0
Mean : 486.8
3rd Qu.: 704.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.503 Mean :217.4 Mean :150.6 Mean : 6.924 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03086 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 8 Min. :-110.0 Min. : 0.00
1st Qu.: 7.000 1st Qu.:194 1st Qu.: 92.0 1st Qu.: 2.00
Median : 8.000 Median :243 Median : 132.0 Median : 8.00
Mean : 8.493 Mean :235 Mean : 124.6 Mean :11.38
3rd Qu.:10.000 3rd Qu.:285 3rd Qu.: 165.0 3rd Qu.:17.00
Max. :12.000 Max. :403 Max. : 254.0 Max. :95.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-4.6992
Median :0.00e+00 Median : 0.0000 Median :40.82 Median :-2.1381
Mean :3.96e-05 Mean : 0.0172 Mean :40.33 Mean :-2.1936
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:41.84 3rd Qu.: 0.5706
Max. :1.00e+00 Max. :59.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 192.0
Mean : 353.5
3rd Qu.: 628.0
Max. :1971.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53 Min. :-121.00 Min. : 0.0
1st Qu.: 2.000 1st Qu.:122 1st Qu.: 23.00 1st Qu.: 6.0
Median : 3.000 Median :156 Median : 54.00 Median : 13.0
Mean : 3.081 Mean :150 Mean : 50.27 Mean : 16.7
3rd Qu.: 4.000 3rd Qu.:182 3rd Qu.: 80.00 3rd Qu.: 24.0
Max. :12.000 Max. :281 Max. : 168.00 Max. :126.0
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:39.47 1st Qu.:-4.8458
Median :0.00e+00 Median : 0.0000 Median :41.06 Median :-2.7331
Mean :3.15e-05 Mean : 0.6906 Mean :40.63 Mean :-2.3933
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:42.26 3rd Qu.: 0.5933
Max. :1.00e+00 Max. :343.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 64.0
Median : 427.0
Mean : 536.2
3rd Qu.: 779.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. : 20.00 Min. :0
1st Qu.: 3.000 1st Qu.:127.0 1st Qu.: 58.00 1st Qu.: 49.00 1st Qu.:0
Median :10.000 Median :149.0 Median : 77.00 Median : 60.00 Median :0
Mean : 7.823 Mean :152.1 Mean : 79.58 Mean : 67.84 Mean :0
3rd Qu.:11.000 3rd Qu.:175.0 3rd Qu.:100.00 3rd Qu.: 79.00 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:41.98 1st Qu.: -8.372 1st Qu.: 42.0
Median : 0.0000 Median :42.89 Median : -5.642 Median : 108.0
Mean : 0.1246 Mean :41.95 Mean : -5.035 Mean : 211.9
3rd Qu.: 0.0000 3rd Qu.:43.36 3rd Qu.: -2.906 3rd Qu.: 336.0
Max. :81.0000 Max. :43.57 Max. : 4.216 Max. :2400.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.000 1st Qu.:201.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.000 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.503 Mean :217.4 Mean :150.6 Mean : 6.924 Mean :0
3rd Qu.: 9.000 3rd Qu.:253.0 3rd Qu.:190.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.000 Max. :356.0 Max. :244.0 Max. :114.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03086 Mean :28.36 Mean :-16.05 Mean : 518.7
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 8 Min. :-110.0 Min. : 0.00
1st Qu.: 7.000 1st Qu.:194 1st Qu.: 92.0 1st Qu.: 2.00
Median : 8.000 Median :243 Median : 132.0 Median : 8.00
Mean : 8.493 Mean :235 Mean : 124.6 Mean :11.38
3rd Qu.:10.000 3rd Qu.:285 3rd Qu.: 165.0 3rd Qu.:17.00
Max. :12.000 Max. :403 Max. : 254.0 Max. :95.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.0000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.0000 1st Qu.:38.88 1st Qu.:-4.6992
Median :0.00e+00 Median : 0.0000 Median :40.82 Median :-2.1381
Mean :3.96e-05 Mean : 0.0172 Mean :40.33 Mean :-2.1936
3rd Qu.:0.00e+00 3rd Qu.: 0.0000 3rd Qu.:41.84 3rd Qu.: 0.5706
Max. :1.00e+00 Max. :59.0000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 192.0
Mean : 353.5
3rd Qu.: 628.0
Max. :1971.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 3.000 1st Qu.: 27.00 1st Qu.: -35.00 1st Qu.: 20.00
Median : 6.000 Median : 66.00 Median : 1.00 Median : 32.00
Mean : 6.425 Mean : 72.75 Mean : 5.09 Mean : 36.21
3rd Qu.:10.000 3rd Qu.:117.00 3rd Qu.: 45.00 3rd Qu.: 48.00
Max. :12.000 Max. :218.00 Max. : 128.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.000 Min. :40.78 Min. :-4.0103 Min. :1213
1st Qu.:0 1st Qu.: 0.000 1st Qu.:41.77 1st Qu.: 0.7292 1st Qu.:1894
Median :0 Median : 0.000 Median :42.47 Median : 0.9844 Median :2230
Mean :0 Mean : 7.832 Mean :42.06 Mean : 0.0693 Mean :2160
3rd Qu.:0 3rd Qu.: 0.000 3rd Qu.:42.64 3rd Qu.: 1.5242 3rd Qu.:2400
Max. :0 Max. :343.000 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : -8.0 Min. :-58.00 Min. : 20.00 Min. :0
1st Qu.: 3.000 1st Qu.:127.0 1st Qu.: 58.00 1st Qu.: 49.00 1st Qu.:0
Median :10.000 Median :149.0 Median : 77.00 Median : 60.00 Median :0
Mean : 7.823 Mean :152.1 Mean : 79.58 Mean : 67.84 Mean :0
3rd Qu.:11.000 3rd Qu.:175.0 3rd Qu.:100.00 3rd Qu.: 79.00 3rd Qu.:0
Max. :12.000 Max. :350.0 Max. :223.00 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:41.98 1st Qu.: -8.372 1st Qu.: 42.0
Median : 0.0000 Median :42.89 Median : -5.642 Median : 108.0
Mean : 0.1246 Mean :41.95 Mean : -5.035 Mean : 211.9
3rd Qu.: 0.0000 3rd Qu.:43.36 3rd Qu.: -2.906 3rd Qu.: 336.0
Max. :81.0000 Max. :43.57 Max. : 4.216 Max. :2400.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:129.0 1st Qu.: 27.00 1st Qu.: 5.00
Median :3.000 Median :160.0 Median : 57.00 Median :12.00
Mean :2.803 Mean :156.4 Mean : 54.03 Mean :15.08
3rd Qu.:4.000 3rd Qu.:185.0 3rd Qu.: 82.00 3rd Qu.:22.00
Max. :7.000 Max. :281.0 Max. :168.00 Max. :80.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.:-5.2892
Median :0.00e+00 Median : 0.00000 Median :40.96 Median :-2.9553
Mean :3.41e-05 Mean : 0.09702 Mean :40.51 Mean :-2.5980
3rd Qu.:0.00e+00 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.3664
Max. :1.00e+00 Max. :75.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 58.0
Median : 353.0
Mean : 401.2
3rd Qu.: 685.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.000 1st Qu.:212 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233 Median :168.0 Median : 1.000 Median :0
Mean : 6.486 Mean :234 Mean :169.4 Mean : 6.219 Mean :0
3rd Qu.: 9.000 3rd Qu.:259 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356 Max. :244.0 Max. :94.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003521 Mean :28.38 Mean :-15.95 Mean :130.9
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. :126.0 Min. : 13.0 Min. : 0.00 Min. :0
1st Qu.: 6.000 1st Qu.:232.0 1st Qu.:121.0 1st Qu.: 1.00 1st Qu.:0
Median : 8.000 Median :266.0 Median :148.0 Median : 7.00 Median :0
Mean : 7.488 Mean :264.9 Mean :148.2 Mean :10.69 Mean :0
3rd Qu.: 9.000 3rd Qu.:297.0 3rd Qu.:176.0 3rd Qu.:16.00 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :95.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.7667 1st Qu.: 43.0
Median : 0.00000 Median :40.84 Median :-2.1381 Median : 185.0
Mean : 0.00322 Mean :40.42 Mean :-2.2238 Mean : 344.4
3rd Qu.: 0.00000 3rd Qu.:41.98 3rd Qu.: 0.5706 3rd Qu.: 617.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1971.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 7.0 Min. : 8.0 Min. :-110.0 Min. : 0.00
1st Qu.:11.0 1st Qu.:116.0 1st Qu.: 26.0 1st Qu.: 4.00
Median :11.0 Median :151.0 Median : 55.0 Median :11.00
Mean :11.3 Mean :151.2 Mean : 58.6 Mean :13.32
3rd Qu.:12.0 3rd Qu.:183.0 3rd Qu.: 90.0 3rd Qu.:20.00
Max. :12.0 Max. :305.0 Max. : 189.0 Max. :55.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.28 1st Qu.:-4.6800
Median :0.0000000 Median : 0.00000 Median :40.70 Median :-2.1381
Mean :0.0001502 Mean : 0.05624 Mean :40.09 Mean :-2.1095
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.66 3rd Qu.: 0.5706
Max. :1.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 258.0
Mean : 379.1
3rd Qu.: 667.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. : 69.00 Min. :-15.00 Min. : 3.00
1st Qu.: 2.000 1st Qu.: 76.00 1st Qu.: -5.00 1st Qu.: 9.00
Median : 2.000 Median : 91.00 Median : -1.00 Median :14.00
Mean : 5.222 Mean : 94.44 Mean : 10.89 Mean :12.89
3rd Qu.:12.000 3rd Qu.: 97.00 3rd Qu.: 30.00 3rd Qu.:15.00
Max. :12.000 Max. :140.00 Max. : 35.00 Max. :24.00
nevada prof_nieve longitud latitud
Min. :2.000 Min. : 0.000 Min. :40.48 Min. :-3.450
1st Qu.:2.000 1st Qu.: 0.000 1st Qu.:40.48 1st Qu.:-3.450
Median :2.000 Median : 1.000 Median :41.67 Median :-1.033
Mean :2.778 Mean : 3.111 Mean :41.14 Mean :-2.107
3rd Qu.:3.000 3rd Qu.: 5.000 3rd Qu.:41.67 3rd Qu.:-1.033
Max. :6.000 Max. :13.000 Max. :41.67 Max. :-1.033
altitud
Min. :263.0
1st Qu.:263.0
Median :263.0
Mean :416.4
3rd Qu.:608.1
Max. :608.1
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 3.000 1st Qu.: 27.00 1st Qu.: -35.00 1st Qu.: 20.00
Median : 6.000 Median : 66.00 Median : 1.00 Median : 32.00
Mean : 6.425 Mean : 72.75 Mean : 5.09 Mean : 36.21
3rd Qu.:10.000 3rd Qu.:117.00 3rd Qu.: 45.00 3rd Qu.: 48.00
Max. :12.000 Max. :218.00 Max. : 128.00 Max. :126.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.000 Min. :40.78 Min. :-4.0103 Min. :1213
1st Qu.:0 1st Qu.: 0.000 1st Qu.:41.77 1st Qu.: 0.7292 1st Qu.:1894
Median :0 Median : 0.000 Median :42.47 Median : 0.9844 Median :2230
Mean :0 Mean : 7.832 Mean :42.06 Mean : 0.0693 Mean :2160
3rd Qu.:0 3rd Qu.: 0.000 3rd Qu.:42.64 3rd Qu.: 1.5242 3rd Qu.:2400
Max. :0 Max. :343.000 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 42.0 Min. :-42.00 Min. : 20.00 Min. :0
1st Qu.: 3.000 1st Qu.:127.0 1st Qu.: 58.00 1st Qu.: 47.00 1st Qu.:0
Median :10.000 Median :149.0 Median : 76.00 Median : 57.00 Median :0
Mean : 7.743 Mean :151.8 Mean : 78.59 Mean : 58.99 Mean :0
3rd Qu.:11.000 3rd Qu.:174.0 3rd Qu.: 99.00 3rd Qu.: 69.00 3rd Qu.:0
Max. :12.000 Max. :269.0 Max. :183.00 Max. :110.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.48 Min. :-16.329 Min. : 1.0
1st Qu.: 0.0000 1st Qu.:42.24 1st Qu.: -7.860 1st Qu.: 42.0
Median : 0.0000 Median :43.12 Median : -5.642 Median : 108.0
Mean : 0.0784 Mean :42.06 Mean : -4.959 Mean : 198.5
3rd Qu.: 0.0000 3rd Qu.:43.37 3rd Qu.: -2.906 3rd Qu.: 336.0
Max. :35.0000 Max. :43.57 Max. : 4.216 Max. :1405.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:129.0 1st Qu.: 27.00 1st Qu.: 5.00
Median :3.000 Median :160.0 Median : 57.00 Median :12.00
Mean :2.803 Mean :156.4 Mean : 54.03 Mean :15.08
3rd Qu.:4.000 3rd Qu.:185.0 3rd Qu.: 82.00 3rd Qu.:22.00
Max. :7.000 Max. :281.0 Max. :168.00 Max. :80.00
nevada prof_nieve longitud latitud
Min. :0.00e+00 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00e+00 1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.:-5.2892
Median :0.00e+00 Median : 0.00000 Median :40.96 Median :-2.9553
Mean :3.41e-05 Mean : 0.09702 Mean :40.51 Mean :-2.5980
3rd Qu.:0.00e+00 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.3664
Max. :1.00e+00 Max. :75.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 58.0
Median : 353.0
Mean : 401.2
3rd Qu.: 685.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : -8.0 Min. :-58.00 Min. : 90.0 Min. :0
1st Qu.: 4.00 1st Qu.:125.0 1st Qu.: 63.00 1st Qu.:104.0 1st Qu.:0
Median :10.00 Median :148.5 Median : 83.50 Median :117.0 Median :0
Mean : 8.35 Mean :154.0 Mean : 86.12 Mean :126.7 Mean :0
3rd Qu.:11.00 3rd Qu.:180.0 3rd Qu.:110.00 3rd Qu.:136.0 3rd Qu.:0
Max. :12.00 Max. :350.0 Max. :223.00 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :27.82 Min. :-17.889 Min. : 1.00
1st Qu.: 0.0000 1st Qu.:40.80 1st Qu.: -8.616 1st Qu.: 27.57
Median : 0.0000 Median :42.43 Median : -6.056 Median : 200.00
Mean : 0.4316 Mean :41.22 Mean : -5.541 Mean : 301.24
3rd Qu.: 0.0000 3rd Qu.:42.89 3rd Qu.: -2.039 3rd Qu.: 370.00
Max. :81.0000 Max. :43.57 Max. : 3.035 Max. :2400.00
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 87 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.000 1st Qu.:212 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.000 Median :233 Median :168.0 Median : 1.000 Median :0
Mean : 6.486 Mean :234 Mean :169.4 Mean : 6.219 Mean :0
3rd Qu.: 9.000 3rd Qu.:259 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.000 Max. :356 Max. :244.0 Max. :94.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003521 Mean :28.38 Mean :-15.95 Mean :130.9
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13.0 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94.0 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :129.0 Median : 51.00 Median : 3.00 Median :0
Mean : 6.585 Mean :138.4 Mean : 60.83 Mean : 10.29 Mean :0
3rd Qu.:10.000 3rd Qu.:183.0 3rd Qu.: 98.00 3rd Qu.: 13.00 3rd Qu.:0
Max. :12.000 Max. :253.0 Max. :159.00 Max. :114.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1766 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip nevada
Min. : 1.0 Min. :-12.00 Min. :-72.00 Min. : 16.00 Min. :0
1st Qu.: 2.0 1st Qu.: 10.25 1st Qu.:-43.75 1st Qu.: 32.25 1st Qu.:0
Median : 2.5 Median : 24.00 Median :-29.50 Median : 50.00 Median :0
Mean : 2.7 Mean : 24.30 Mean :-31.17 Mean : 56.10 Mean :0
3rd Qu.: 3.0 3rd Qu.: 35.75 3rd Qu.:-23.25 3rd Qu.: 71.50 3rd Qu.:0
Max. :12.0 Max. : 76.00 Max. : 8.00 Max. :180.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 357.0 Min. :40.78 Min. :-4.01 Min. :1894
1st Qu.: 481.5 1st Qu.:40.78 1st Qu.:-4.01 1st Qu.:1894
Median : 599.0 Median :40.78 Median :-4.01 Median :1894
Mean : 685.7 Mean :40.78 Mean :-4.01 Mean :1894
3rd Qu.: 765.2 3rd Qu.:40.78 3rd Qu.:-4.01 3rd Qu.:1894
Max. :1834.0 Max. :40.78 Max. :-4.01 Max. :1894
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)